#下列以"'a'bao'zhi'gong 阿保之功\n"做实例

#处理一个成语手册中一行获得其开头|a
def GetHead(line):
    return line.split("'")[1]

#处理一个成语手册中一行获得其结尾|gong 阿保之功
def GetEnd(line):
    return line.split("'")[-1].rstrip('\n')

#处理一个成语手册中一行导入成语字典
def SetIn(line,dic):
         Head=GetHead(line)
         End=GetEnd(line)
         #若成语字典中尚且没有这个值，就为之新建一个列表
         if dic.__contains__(Head)==False:
             dic[Head]=[]
         dic[Head].append(End)
        
#获得一个列表中的随机一个
def GetRandom(array):
   return array[int(random.random()*len(array))]

    
#判断一个字符串是不是成语
def GetKey(Dic,string):
    for Head, End in Dic.items():
        for item in End:
            if item[-4:]==string:
                return Head
    return ''


#打开成语手册
f=open(r'四字成语.txt')


#逐行读取手册，将其中有价值的信息提取到ChengYus中
#ChengYus={‘a’：['gong 阿保之功','lao 阿保之劳'，...],'ai'：[...]}
Dic={}
while True:
     line = f.readline()     
     #读到末尾暂停
     if line == "":
        break
     SetIn(line,Dic)
#关闭文件
f.close()

#PlayTheGame
import random
#第一个
Head=GetRandom(list(Dic.keys()))
End=GetRandom(Dic[Head])
print('您好，我是机器人Garry，来和我玩成语接龙吧，我先来:'+End[-4:]+'\n'+\
      '您需要接'+End[-1]+' '+End.split()[0])
#之后每一组
while True:
    #接受用户的输入，直到用户输入对为止
    while True:
        User_Input=input()
        Key=GetKey(Dic,User_Input)
        if Key!='':
            break;    
        User_Input=print('您输的好像不是成语呢')
    End=GetRandom(Dic[Key])
    print('这个难不倒我'+End[-4:]+' '+End.split()[0])
